﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Practices.EnterpriseLibrary.PolicyInjection;

using NCS.IConnect.ApplicationContexts;

using JM.JCY.BusinessFacade;
using JM.JCY.Common;
using JM.JCY.BusinessEntity;

namespace JM.JCY.Proxy
{
   public class PhotoAlbumProxy:JCYProxyBase<IPhotoAlbum>,IPhotoAlbum
    {
       private IPhotoAlbum GetInstance()
       {
           return PolicyInjection.Create<PhotoAlbumBF, IPhotoAlbum>();
       }

       public void CreateAlbumwithUpload(PhotoAlbumDataSet ds)
       {
           this.GetInstance().CreateAlbumwithUpload(ds);
       }

       public PhotoAlbumDataSet getAlbumDbyAlbumId(int albumId)
       {
           return this.GetInstance().getAlbumDbyAlbumId(albumId);
       }

       public PhotoAlbumSearchDataSet.T_UserCommitteeDataTable GetAllCommitteeUsersById(int committeeId)
       {
           return this.GetInstance().GetAllCommitteeUsersById(committeeId);
       }

       public PhotoAlbumSearchDataSet.T_UserDepartmentDataTable GetAllDepartmentUsersById(int departmentId)
       {
           return this.GetInstance().GetAllDepartmentUsersById(departmentId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumContentDataTable GetAlbumContents(int albumId)
       {
           return this.GetInstance().GetAlbumContents(albumId);
       }

       public PhotoAlbumSearchDataSet.T_SearchLikeDataTable GetObjectLikCount(int objectId, string objType)
       {
           return this.GetInstance().GetObjectLikCount(objectId, objType);
       }

       public PhotoAlbumSearchDataSet.T_AlbumDataTable GetAllPublicAlbums(string appType, int appId)
       {
           return this.GetInstance().GetAllPublicAlbums(appType, appId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumDataTable GetWorkgroupAlbums(string appType, int appId)
       {
           return this.GetInstance().GetWorkgroupAlbums(appType, appId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumDataTable GetCommitteeAlbums(string appType, int appId)
       {
           return this.GetInstance().GetCommitteeAlbums(appType, appId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumDataTable GetMySelfAlbums(string appType, int appId, int staffId)
       {
           return this.GetInstance().GetMySelfAlbums(appType, appId, staffId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumContentDataTable GetMadieById(int madieId)
       {
           return this.GetInstance().GetMadieById(madieId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumContentDataTable GetMadieByAlbumId(int albumId)
       {
           return this.GetInstance().GetMadieByAlbumId(albumId);
       }

       public PhotoAlbumSearchDataSet.T_SearchLikeDataTable GetLike(int objectId, string objectType)
       {
           return this.GetInstance().GetLike(objectId, objectType);
       }

       public void LikeOfAlbum(PhotoAlbumSearchDataSet ds)
       {
           this.GetInstance().LikeOfAlbum(ds);
       }

       public PhotoAlbumSearchDataSet.T_UserCommitteeDataTable GetUserCommitteeByUserId(int userId)
       {
           return this.GetInstance().GetUserCommitteeByUserId(userId);
       }

       public PhotoAlbumSearchDataSet.T_UserDepartmentDataTable GetUserDepartmentByUserId(int userId)
       {
           return this.GetInstance().GetUserDepartmentByUserId(userId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumDataTable GetRecentlyUpdatedAlbums(string appType, int appId)
       {
           return this.GetInstance().GetRecentlyUpdatedAlbums(appType, appId);
       }

       public PhotoAlbumSearchDataSet.T_AlbumDataTable GetMostPopularAlbums(string appType, int appId)
       {
           return this.GetInstance().GetMostPopularAlbums(appType, appId);
       }

    }
}
